package com.atguigu.srb.core.service;

import com.atguigu.srb.core.pojo.entity.UserInfo;
import com.atguigu.srb.core.pojo.query.UserInfoQuery;
import com.atguigu.srb.core.pojo.vo.LoginVO;
import com.atguigu.srb.core.pojo.vo.RegisterVO;
import com.atguigu.srb.core.pojo.vo.UserInfoVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 用户基本信息 服务类
 * </p>
 *
 * @author lupengning
 * @since 2021-05-27
 */
public interface UserInfoService extends IService<UserInfo> {

  /**
   * 会员注册
   * @param registerVO
   */
  void register(RegisterVO registerVO);

  /**
   * 会员登录
   * @param loginVO
   * @param ip
   * @return
   */
  UserInfoVO login(LoginVO loginVO, String ip);

  /**
   * 根据条件查询会员列表
   * @param pageParam
   * @param userInfoQuery
   * @return
   */
  IPage<UserInfo> listPage(Page<UserInfo> pageParam, UserInfoQuery userInfoQuery);

  /**
   * 锁定用户状态
   * @param id
   * @param status
   */
  void lock(Long id, Integer status);

  /**
   * 手机号码是否已经被注册
   * @param mobile
   * @return
   */
  boolean isRegisterMobile(String mobile);
}
